/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package cronus.client;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.Object;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.ListSelectionModel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;

/**
 *
 * @author mark
 */
public class MChangeQuery extends JFrame implements ActionListener {
    
    private JButton selecteren = new JButton("Selecteren");
    private JButton opslaan = new JButton("Opslaan");
    private JTextField rapportnaam = new JTextField("Rapportnaam");
    private JTextArea rapport = new JTextArea("Rapport", 20, 40);
    
    private DefaultListModel dlm = new DefaultListModel();
    private JList lijst = new JList(dlm);
    private String tekst = "";
    private int teller = 1;
    private String s1 = "test";
    private String s2 = "fout";
    
    private JMenuBar menubar = new JMenuBar();
    private JMenu help = new JMenu("Helpfunctie");
    private JMenuItem helpfunctie = new JMenuItem("Uitleg");
    
    
    public MChangeQuery(){
        
        menubar.add(help);
        help.add(helpfunctie);
        helpfunctie.addActionListener(this);
        setJMenuBar( menubar );
        
        setLayout(new FlowLayout());
        setSize(500,500);
        setDefaultCloseOperation(HIDE_ON_CLOSE);
        //setResizable(false);
        setVisible(true);
        setTitle("Aanpassen Rapport");
        
        lijst.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
        int start = 1;
        int end = 1;
        lijst.setSelectionInterval(start, end);
        
        selecteren.addActionListener(this);
        opslaan.addActionListener(this);

        
        SocketConnection socketcon = new SocketConnection();
            
            String query = "SELECT Distinct rapportnaam From rapporten";
            
            socketcon.send(query);
            
            Object[][] uitkomst = socketcon.read();
            
            for(Object[] ao : uitkomst){
                for(Object o : ao ){
                    tekst = "" + (o.toString());
                    dlm.addElement(tekst);
                }
            }

                add(this.lijst);
                add(this.selecteren);
                add(this.rapportnaam);
                add(this.rapport);
                add(this.opslaan);
        
    }
    

    public void actionPerformed(ActionEvent e){
        //geeft de items die geselecteerd zijn
        int[] selectedIx = lijst.getSelectedIndices();   
        int i = 0;
        
        if (e.getSource() == selecteren){
            //Koppelt de geselecteerde index aan de naam uit de lijst.
                Object sel = lijst.getModel().getElementAt(selectedIx[i]);
                
                SocketConnection socketcon = new SocketConnection();
            
                String query = "SELECT * From rapporten where rapportnaam ='" + sel + "'";

                socketcon.send(query);

                Object[][] uitkomst = socketcon.read();

                for(Object[] ao : uitkomst){
                    for(Object o : ao ){
                        tekst = "" + (o.toString());

                        if (teller == 1){
                            rapportnaam.setText(tekst);
                            s1 = rapportnaam.getText();
                            teller = 2;
                        }
                        else if (teller == 2){
                            rapport.setText(tekst);
                            s2 = rapport.getText();
                            teller = 1;
                        }
                                   
                    }
                }
        }
            else if (e.getSource() == opslaan){
                
                SocketConnection socketcon = new SocketConnection();
                
                String naam = rapportnaam.getText();
                String r = rapport.getText();
            
                String query = "UPDATE rapporten Set rapportnaam='" + naam +  "', rapport='" + r + "' Where rapportnaam ='" + s1 + "'AND rapport ='" + s2 + "'";

                socketcon.send(query);
                
                JOptionPane.showMessageDialog(null,naam + " is gewijzigd","Geslaagd",JOptionPane.INFORMATION_MESSAGE);
            }
        
                        else if (e.getSource() == helpfunctie){
                            //Maak een nieuw HelpScreen aan
                            HelpScreen usermanualscreen = new HelpScreen("svn\\Cronus Client\\rapport_aanpassen.txt");
                            //Declareer het formaat van dit scherm
                            usermanualscreen.setSize(640, 480);
                            //Maak het scherm zichtbaar
                            usermanualscreen.setVisible(true);
                        }

            


        }
    }

